// 我们称一个长度为n的序列为正则序列，当且仅当该序列是一个由1~n组成的排列，即该序列由n个正整数组成，取值在[1,n]范围，且不存在重复的数，同时正则序列不要求排序

// 有一天小团得到了一个长度为n的任意序列，他需要在有限次操作内，将这个序列变成一个正则序列，每次操作他可以任选序列中的一个数字，并将该数字加一或者减一。

// 请问他最少用多少次操作可以把这个序列变成正则序列？


// 输入描述:
// 输入第一行仅包含一个正整数n，表示任意序列的长度。(1<=n<=20000)

// 输入第二行包含n个整数，表示给出的序列，每个数的绝对值都小于10000。


// 输出描述:
// 输出仅包含一个整数，表示最少的操作数量。


#include<bits/stdc++.h>
using namespace std;

int main(int argc, char const *argv[])
{
    int cnt;

    while(cin>>cnt){
        int res=0;
        vector<int> vec;
        unordered_map<int,bool> hash;
        for(int i=1;i<=cnt;++i){
            int temp;
            cin>>temp;
            vec.emplace_back(temp);
            hash[i]=false;
        }

        for(int i=0;i<cnt;++i){
            if(hash.count(vec[i])){
                hash[vec[i]]=true;
                continue;
            }
            else{
                int first;
                int imin=INT_MAX;
                for(auto x:hash){
                    if(x.second==false){
                        int temp=abs(x.first-vec[i]);
                        if(temp<imin){
                            imin=temp;
                            first=x.first;
                        }
                    }
                    
                }
                hash[first]=true;
                res += imin;
            }
        }
        cout<<res<<endl;
        
    }
    return 0;
}
